# 使用官方的OpenJDK 17作为基础镜像
FROM openjdk:17-jdk-slim

# 设置工作目录
WORKDIR /app

# 首先配置apt国内源 - 使用阿里云镜像源
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
  sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list

# 安装必要的工具和Maven
RUN apt-get update && apt-get install -y \
  curl \
  wget \
  maven \
  && rm -rf /var/lib/apt/lists/*

# 配置Maven使用阿里云镜像
RUN mkdir -p /root/.m2 && \
  echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" \
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" \
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 \
  https://maven.apache.org/xsd/settings-1.0.0.xsd"> \
  <mirrors> \
  <mirror> \
  <id>aliyunmaven</id> \
  <mirrorOf>central</mirrorOf> \
  <name>阿里云公共仓库</name> \
  <url>https://maven.aliyun.com/repository/public</url> \
  </mirror> \
  </mirrors> \
  </settings>' > /root/.m2/settings.xml

# 复制pom.xml
COPY pom.xml .

# 下载依赖（利用Docker层缓存）
RUN mvn dependency:go-offline -B

# 复制源代码
COPY src src

# 构建应用
RUN mvn clean package -DskipTests -Dmaven.test.skip=true

# 暴露端口
EXPOSE 8081

# 设置JVM参数和字符编码 - 开源版本无内存限制
ENV JAVA_OPTS="-XX:+UseG1GC -XX:+UseStringDeduplication -Dfile.encoding=UTF-8 -Duser.timezone=Asia/Shanghai"

# 设置系统环境变量
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8

# 运行应用
CMD ["sh", "-c", "java $JAVA_OPTS -jar target/devenv-opensource-1.0.0.jar"]
